package com.sanbi.common.express.request;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @description: 批量查询出库委托 请求参数
 * @author: wanpeng
 * @create: 2024-05-14 09:53
 * @Version 1.0
 **/
@Data
public class QueryOutboundRequest implements Serializable {
    /** 客户参考号 */
    private String ref_no;
    /** 出库委托单号 */
    private String consignment_no;
    /** 菜鸟跟踪号。菜鸟唯一跟踪号。可用于在菜鸟轨迹系统查询 */
    @JSONField(name = "4px_tracking_no")
    private String px4_tracking_no;
    /** 出库委托状态。<br>可选值：<br>N（草稿）；<br>S（出库中）；<br>P（已下架）；<br>C（已出库）；<br>X（已取消）；<br>D（已删除）；<br>E（异常） */
    private String status;
    /**  异常子状态： <br>G（欠费）；<br>B（计费异常）；<br>R（审核失败）；<br>S（缺货） */
    private String sub_status;
    /** 换号状态：<br>Y（异常）；<br>N（正常）*/
    private String tracking_status;
    /** SKU编码 */
    private String sku_code;
    /** 发货仓库代码。详细参考公共服务，获取仓库代码 */
    private String from_warehouse_code;
    /** 物流产品代码。详细参考基础数据-获取物流产品代码 */
    private String logistics_product_code;
    /** 卖家ID */
    private String seller_id;
    /** 销售平台可选值：<br>AE(速卖通);<br>WS(Wish);<br>EB(eBay);<br>AM(亚马逊);<br>TM(天猫国际);<br>JD(京东) */
    private String sales_platform;
    /** 	销售/平台交易号 */
    private String sales_no;
    /** 物流单号 */
    private String shipping_no;
    /** 出库退件标识。<br>可选值：<br>N（未退件）;<br>R1（服务商退件）;<br>R2（GRS退件）;<br>R9（GRS取消退件）*/
    private String return_flag;
    /** 国家二字码，详细参考国际二字码。如：CN（中国） */
    private String country;
    /** 创建时间-开始 ,时间默认为当天。 <br> *注：最大支持一个月（30天）数据进行查询。时间格式：传入时间值需要转换为long类型格式。 */
    private Long create_time_start;
    /** 创建时间-结束 ,时间默认为当天。 <br> *注：最大支持一个月（30天）数据进行查询。时间格式：传入时间值需要转换为long类型格式。 */
    private Long create_time_end;
    /** 发货时间-开始 ,时间默认为当天。  <br>*注：最大支持一个月（30天）数据进行查询。时间格式：传入时间值需要转换为long类型格式。 */
    private Long complete_time_start;
    /** 发货时间-结束 ,时间默认为当天。  <br>*注：最大支持一个月（30天）数据进行查询。时间格式：传入时间值需要转换为long类型格式。 */
    private Long complete_time_end;
    /**  页码。默认为第1页。如：1。 */
    @NotNull
    private Integer page_no;
    /** 每页记录数。默认记录数为：50。如：50。*注：单次查询最大支持500条，可小于500进行查询。*/
    @NotNull
    @Max(500)
    private Integer page_size;
    /** 客户操作帐号。如果客户存在操作账号，则可以指定客户操作账号进行查询，如果不传入，则查询返回所有操作账号下出库委托信息。  */
    private String customer_code;
}
